The present invention relates to computer software or programs and, more particularly, to a method and system for protecting software programs from unauthorized use and/or copying.
With the tremendous increase in the number of home computers, as well as business computers that are currently in use, there has been a corresponding increase in computer software or programs for use with such home and business computers. For example, specialized applications programs have been developed for everything from presenting elaborate spread sheets and desk top publishing to sophisticated computer games. In general such applications programs are sold to the end user either directly by the individual or company which developed the program, or through an established distribution network which may include mail order and/or retail sales outlets. In many cases, the applications program is stored within a standard magnetic storage medium, such as floppy disk, to facilitate loading of the program into the home or business computer for performing the desired task.
Control of the software, particularly software distributed on a floppy disk, has become a major problem, due to the ease with which a program stored within a floppy disk may be duplicated. Although, in theory, the copyright laws protect software developers from unauthorized copying of such programs, it is impractical, if not impossible, for software developers to fully enforce their copyrights, particularly against companies or individuals making a relatively small number of copies. For example, a small company may purchase one copy of the original software from the developer and may then produce four or five unauthorized copies of the software for separate use on computers at different locations within the company.
Likewise, a group of individuals may combine their money to purchase one original of the software for a particular computer game and then make a number of unauthorized copies for separate use of the software by each of the individuals within the group on their own computers. In either event, the developer of the software is unable to enforce its rights against the copiers since, without having inside information, it is not possible for the software developer to know that the unauthorized copies of the software were made and/or who made the unauthorized copies. Moreover, it would be prohibitively expensive to take legal action to enforce copyrights with respect to such small numbers of unauthorized copies. Accordingly, software developers are generally unable to enforce their rights and, therefore, are suffering economic loss.
Various methods have been developed to prevent the unauthorized copying of software. One such method involves requiring the purchaser of the software to enter into a license agreement which permits use of the software only upon a single designated computer and prohibits the purchaser from making unauthorized copies. This form of protection is difficult and expensive to enforce, particularly when dealing with smaller companies and individuals.
A second form of protection requires utilizing a secret code or password which must be obtained from the software supplier and entered when using the software. While this form of protection has merit, it still does not preclude unauthorized use or copying on a relatively small scale since the code or password can be obtained by one person from the software supplier and can be given to the other users within the company or group.
A third form of protection involves placing restrictions within the computer program which completely preclude copying or permit only a single copy of the program to be made. While this form of protection can be effective, it may prevent a legitimate purchaser of the software from making a single backup copy, as permitted by law. In addition, specialized programs have been developed to circumvent or override this type of protection. Other forms of copy protection have been developed and employed with limited success. In some cases, the other forms of protection are too expensive to employ with some software, and, in other cases, these other forms of protection are not technically suitable for some software.
The present invention overcomes many of the problems inherent in the existing forms of protection for computer software and provides protection from both unauthorized use and copying. With one embodiment of the present invention, the serial number of the particular hardware, as well as the serial number of the particular copy of the software, must be entered, along with a unique activation number obtained from the software supplier, in order to enable use of the software. The software performs an operation upon the hardware serial number, the software serial number and the activation number to produce an intermediate code which is compared to a number hidden within the software and uniquely associated with the particular copy of the software. The program is arranged to automatically change the hidden number in a predetermined manner whenever the software is copied. The software is only operable if the comparison indicates that the intermediate code and the hidden number are identical. In this manner, only a single embodiment of the software can be used with the activation number initially supplied by the software developer. Every time a copy of the software is made, the user must contact the software developer to obtain a new activation number. In this manner, the software developer is able to keep accurate records with respect to the number of copies made and may charge the user accordingly.